from flask import render_template


def error_handler_config(app): # 自定义错误页
    @app.errorhandler(404) # 每个视图函数对应一种错误
    def page_not_found(e):
        return render_template('errors/404.html')

    @app.errorhandler(500)
    def internal_server_error(e):
        return render_template('errors/500.html')

    @app.errorhandler(400)
    def internal_server_error(e): # user.py中Ajax接收处，即send_verification_code_to_email和verify_phone路由，如果不判断是否是Ajax请求，然后直接在浏览器输入路由访问，会报400 Bad Request.但不知道send_verification_code路由触发哪个状态码，400和500都不响应
        return render_template('main/index.html')
'''
from flask import request
# Referer请求头包含了当前请求页面的来源页面的地址，即表示当前页面是通过此来源页面里的链接进入的。服务端一般使用Referer请求头识别访问来源，可能会以此进行统计分析、日志记录以及缓存优化等。from https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Referer
# Referer可以防盗链、防恶意请求，浏览器地址栏直接输入URL访问，请求头里无Referer。from https://blog.csdn.net/shenqueying/article/details/79426884和https://www.jianshu.com/p/1a6abab212ed
referer=request.headers.get('Referer',None) # 获取不到时返回None。可将referer传给前端自定义错误页面(如<a href="{{ referer }}">返回上一页</a>)，这样在发生错误时，点击错误页面内的链接跳转回刚才的页面
'''